testoverlay: Use an event controller
authorMatthias Clasen <mclasen@redhat.com>
Mon, 1 Jan 2018 16:15:22 +0000 (11:15 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 16 Jan 2018 19:14:09 +0000 (14:14 -0500)
We can stop using ::enter-notify-event here, and use
our new motion event controller instead.

tests/testoverlay.c

index ac5cc4d11da2dfd820c8eb456b32da0e28d5f387..9eea96053219d241bb0cbb9853fdeb371bf3cde6 100644 (file)
@@ -315,8 +315,10 @@ test_builder (void)
 }
 
 static void
-on_enter (GtkWidget *child, GdkEventCrossing *event, GtkWidget *overlay)
+on_enter (GtkEventController *controller, GtkWidget *overlay)
 {
+  GtkWidget *child = gtk_event_controller_get_widget (controller);
+
   if (gtk_widget_get_halign (child) == GTK_ALIGN_START)
     gtk_widget_set_halign (child, GTK_ALIGN_END);
   else
@@ -336,6 +338,7 @@ test_chase (void)
   GtkTextBuffer *buffer;
   gchar *contents;
   gsize len;
+  GtkEventController *controller;
 
   win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title (GTK_WINDOW (win), "Chase");
@@ -369,8 +372,10 @@ test_chase (void)
   gtk_overlay_add_overlay (GTK_OVERLAY (overlay), child);
   g_object_set (child, "margin", 4, NULL);
 
-  g_signal_connect (child, "enter-notify-event",
-                    G_CALLBACK (on_enter), overlay);
+  controller = gtk_event_controller_motion_new (child);
+  g_object_set_data_full (G_OBJECT (child), "motion", controller, g_object_unref);
+  g_signal_connect (controller, "enter", G_CALLBACK (on_enter), overlay);
+
   return win;
 }